// 同时发送异步请求的次数
let ajaxTimes = 0;

// 封装 Promise 对象处理 wx.request, 并对外暴露
export const request = (params) => {
  // 判断url中是否带有 "/my/" 表示请求的是私有路径, 需要带上header token
  let header = { ...params.header };
  if (params.url.includes("/my/")) {
    // 拼接header带上token
    header["Authorization"] = wx.getStorageSync("token");
  }
  // 记录请求次数
  ajaxTimes++;
  // 显示loading效果
  wx.showLoading({
    title: "努力加载中",
    mask: true,
  });

  // 定义公共url
  const baseUrl = "https://api-hmugo-web.itheima.net/api/public/v1";
  return new Promise((resolve, reject) => {
    wx.request({
      ...params,
      header: header,
      url: baseUrl + params.url,
      success: (result) => { resolve(result.data.message); },
      fail: (err) => { reject(err); },
      complete: () => {
        // 请求完成, 减少记录数
        ajaxTimes--;
        // 全部请求完成, 无论成功失败都要关闭loading效果
        if (ajaxTimes === 0) {
          wx.hideLoading();
        }
      }
    });
  })
}